package com.ucode.model.cgms;

import com.ucode.tool.base.BaseTenantMode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;

/**
 * 陪玩服务商品
 * @Author: liliang
 * @Date: 2025/4/27 12:48
 * @Version: 1.0
 */
@Schema(description = "陪玩俱乐部社区系统 - 陪玩服务商品")
@Data
@EqualsAndHashCode
@ToString(callSuper = true)
public class CgmsCompanionProduct extends BaseTenantMode<Long, Long> {
    /**
     * 服务提供者，如果为0L,官方提供，则需要触发抢单服务
     */
    private Long providerId;
    /**
     * 专区ID
     */
    private Long zoneId;
    /**
     * 商品分类
     */
    private Long categoryId;

    /**
     * 商品标题
     */
    private String title;
    /**
     * 关键字
     */
    private String keywords;
    /**
     * 子标题（可以简述段位、价格等）
     */
    private String subTitle;
    /**
     * 商品列表图
     */
    private String picUrl;
    /**
     * 商品海报图
     */
    private String posterPicUrl;
    /**
     * 海报标题
     */
    private String posterTitle;
    /**
     * 商品轮播图(最多10张)【变更过】
     * 1. 第一张图片将作为商品主图，支持同时上传多张图；
     * 2. 建议使用尺寸 800x800 像素以上、大小不超过 1M 的正方形图片；
     * 3. 至少 1 张，最多上传 10 张
     */
    private List<String> carouselPicUrls;
    /**
     * 描述
     */
    private String description;
    /**
     * 市场价,单位:元
     */
    private BigDecimal marketPrice;
    /**
     * 现价,单位:元
     */
    private BigDecimal price;
    /**
     * 单位
     */
    private String unitStr;
    /**
     * 是否启用限购
     */
    private Boolean useLimit;
    /**
     * 限购类型
     * 1:单次限购 是限制每次下单最多购买的数量，
     * 2:单人限购 是限制一个用户总共可以购买的数量
     * 3:单日限购 是限制一个用户每天可以购买的数量
     */
    private Integer limitType;
    /**
     * 限购数量
     */
    private Integer limitQty;
    /**
     * 标签
     */
    private Set<String>  tags;
    /**
     * 销售量
     */
    private Integer salesCount;

    /**
     * 状态
     * 枚举 {@link com.ucode.tool.base.enums.CommonReleaseStatusEnum}
     */
    private Integer status;
    /**
     * 上下架时间
     */
    private LocalDateTime releaseTime;

    /*********************营销信息部分************************/

    /**
     * 是否新品
     */
    private Boolean recNew;
    /**
     * 是否热卖
     */
    private Boolean recHot;
    /**
     * 是否促销
     */
    private Boolean recBenefit;

    /**
     * 抽成比例时为百分比
     */
    private BigDecimal commissionRatio;

    /**
     * 返点比例时为百分比
     */
    private BigDecimal rebateRatio;

    /**
     * 排序
     */
    private Integer sortnum;

}
